package com.cskaoyan.javase.array._2momery;

/**
 * 数组的静态初始化
 *
 * 在整个Java语言当中，引用数据类型对象中的元素（属性）
 * 永远具有默认初始化
 * 在创建对象过程中，给对象中的元素（属性）赋值时，有很多的手段，
 * 但永远最先进行的是默认初始化具有默认值。
 * 默认值的步骤永远最先进行，且不可被省略。
 * 这是一种安全机制，保证在任何时候访问对象中的元素，它都有取值。
 *
 * 数组对象中存储引用数据类型元素，存储的是引用，是地址。
 *      这个存储的引用仍然会指向堆上的另外一个对象。
 *
 * 经典问题：
 * 既然引用数据类型具有默认初始化，对象中的元素具有默认值，那为什么声明一个数组后为什么不能立刻使用呢？
 *      引用数据类型变量具有默认初始化是对的，但是要明确是对象中的元素具有默认初始化
 *      而引用是一个局部变量，局部变量没有默认初始化，必须手动初始化才能够使用。
 *
 * @since 11:19
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo4 {
    public static void main(String[] args) {
        // 引用数据类型数组，存储引用数据类型元素
        String[] arr = {"123", "666"};
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr.length);
        arr[0] = "777";
        System.out.println(arr);

    }
}
